home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-11-11 | 5.2 KB | 163 lines | [TEXT/MPS ] |
- {
- File: ConditionalMacros.p
-
- Copyright: © 1984-1994 by Apple Computer, Inc.
- All rights reserved.
-
- Version: Universal Interfaces 2.0a3 ETO #16, MPW prerelease. Friday, November 11, 1994.
-
- Bugs?: If you find a problem with this file, send the file and version
- information (from above) and the problem description to:
-
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- }
-
- {$IFC UNDEFINED UsingIncludes}
- {$SETC UsingIncludes := 0}
- {$ENDC}
-
- {$IFC NOT UsingIncludes}
- UNIT ConditionalMacros;
- INTERFACE
- {$ENDC}
-
- {$IFC UNDEFINED __CONDITIONALMACROS__}
- {$SETC __CONDITIONALMACROS__ := 1}
-
- {$I+}
- {$SETC ConditionalMacrosIncludes := UsingIncludes}
- {$SETC UsingIncludes := 1}
-
-
- {$PUSH}
- {$ALIGN MAC68K}
- {$LibExport+}
- {
- This file sets up the following compiler independent conditionals:
-
- GENERATINGPOWERPC - Compiler is generating PowerPC instructions
- GENERATING68K - Compiler is generating 68k family instructions
- GENERATING68881 - Compiler is generating mc68881 floating point instructions
- GENERATINGCFM - Code being generated assumes CFM calling conventions
- CFMSYSTEMCALLS - No A-traps. Systems calls are made using CFM and UPP's
-
- SystemSevenFiveOrLater - Compiled code will only be run on a System 7.5 or later Macintosh
- SystemSevenOrLater - Compiled code will only be run on a System 7.0 or later Macintosh
- SystemSixOrLater - Compiled code will only be run on a System 6.0 or later Macintosh
- A developer should set the appropriate flag on the compiler command-
- line or in a file processed before this file. This will allow the
- certain optimizations to be made which can result in smaller, faster
- applications.
-
- CGLUESUPPORTED - Interface library will support "C glue" functions (function names
- are: all lowercase, use C strings instead of pascal strings, use
- Point* instead of Point).
-
- OLDROUTINENAMES - "Old" names for Macintosh system calls are allowed in source code.
- (e.g. DisposPtr instead of DisposePtr). The names of system routine
- are now more sensitive to change because CFM binds by name. In the
- past, system routine names were compiled out to just an A-Trap.
- Macros have been added that each map an old name to its new name.
- This allows old routine names to be used in existing source files,
- but the macros only work if OLDROUTINENAMES is true. This support
- will be removed in the near future. Thus, all source code should
- be changed to use the new names! You can set OLDROUTINENAMES to false
- to see if your code has any old names left in it.
-
- OLDROUTINELOCATIONS - "Old" location of Macintosh system calls are used. For example, c2pstr
- has been moved from Strings to TextUtils. It is conditionalized in
- Strings with OLDROUTINELOCATIONS and in TextUtils with !OLDROUTINELOCATIONS.
- This allows developers to upgrade to newer interface files without suddenly
- all their code not compiling becuase of "incorrect" includes. But, it
- allows the slow migration of system calls to more understandable file
- locations. OLDROUTINELOCATIONS currently defaults to true, but eventually
- will default to false.
-
-
- There are some invariants among the conditionals:
-
- GENERATINGPOWERPC != GENERATING68K
- GENERATING68881 => GENERATING68K
- GENERATINGPOWERPC => GENERATINGCFM
- GENERATINGPOWERPC => CFMSYSTEMCALLS
- CFMSYSTEMCALLS => GENERATINGCFM
- GENERATINGPOWERPC => SystemSevenOrLater
- SystemSevenFiveOrLater => SystemSevenOrLater
- SystemSevenOrLater => SystemSixOrLater
-
-
- }
- {$IFC UNDEFINED LSPWRP }
- {$SETC LSPWRP := 0}
- {$ENDC}
- {$IFC UNDEFINED LSP68K }
- {$SETC LSP68K := NOT LSPWRP}
- {$ENDC}
- {$IFC UNDEFINED GENERATINGPOWERPC }
- {$SETC GENERATINGPOWERPC := LSPWRP}
- {$ENDC}
- {$IFC UNDEFINED GENERATING68K }
- {$SETC GENERATING68K := LSP68K}
- {$ENDC}
- {$IFC GENERATING68K & OPTION(mc68881) }
- {$SETC GENERATING68881 := 001}
- {$ENDC}
- {$IFC UNDEFINED GENERATING68881 }
- {$SETC GENERATING68881 := 0}
- {$ENDC}
- {$IFC GENERATINGPOWERPC }
- {$SETC CFMSYSTEMCALLS := 1}
- {$SETC GENERATINGCFM := 1}
- {$ENDC}
- {$IFC UNDEFINED GENERATINGCFM }
- {$IFC UNDEFINED __CFM68K__ }
- {$SETC GENERATINGCFM := 0}
- {$SETC CFMSYSTEMCALLS := 0}
- {$ELSEC}
- {$SETC GENERATINGCFM := 1}
- {$SETC CFMSYSTEMCALLS := 1}
- {$ENDC}
- {$ENDC}
- {$IFC UNDEFINED CFMSYSTEMCALLS }
- {$SETC CFMSYSTEMCALLS := 0}
- {$ENDC}
- {$IFC UNDEFINED SystemSevenFiveOrLater }
- {$SETC SystemSevenFiveOrLater := 0}
- {$ENDC}
- {$IFC UNDEFINED OLDROUTINENAMES }
- {$SETC OLDROUTINENAMES := 1}
- {$ENDC}
- {$IFC UNDEFINED OLDROUTINELOCATIONS }
- {$SETC OLDROUTINELOCATIONS := 1}
- {$ENDC}
- {$IFC UNDEFINED SystemSevenOrLater }
- {$IFC GENERATINGCFM | SystemSevenFiveOrLater }
- {$SETC SystemSevenOrLater := 1}
- {$ELSEC}
- {$SETC SystemSevenOrLater := 0}
- {$ENDC}
- {$ENDC}
- {$IFC UNDEFINED SystemSixOrLater }
- {$SETC SystemSixOrLater := SystemSevenOrLater}
- {$ENDC}
- {$IFC OLDROUTINENAMES }
- {$IFC UNDEFINED USES68KINLINES }
- {$SETC USES68KINLINES := GENERATING68K}
- {$ENDC}
- {$SETC USESCODEFRAGMENTS := GENERATINGCFM}
- {$SETC USESROUTINEDESCRIPTORS := GENERATINGCFM}
- {$ENDC}
-
- {$ALIGN RESET}
- {$POP}
-
- {$SETC UsingIncludes := ConditionalMacrosIncludes}
-
- {$ENDC} {__CONDITIONALMACROS__}
-
- {$IFC NOT UsingIncludes}
- END.
- {$ENDC}
-